Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Haptic rendering is the translation of forces in a virtual environment to a physical device that can provide touch-based, a.k.a. haptic, feedback to a user of the haptic rendering device. Both impedance type and admittance type haptic rendering devices are available.
To provide haptic feedback about the virtual environment, objects in the virtual environment are often represented as a collection of polygons, such as triangles, that can be operated upon using a haptic rendering device. The haptic rendering device can be controlled using a “Haptic Interaction Point” (HIP) in the virtual environment, which performs a similar function for the haptic rendering device as a mouse pointer does for a computer mouse. Ideally, the HIP should not be able to penetrate virtual environment objects.
FIGS. 1A-1C depict a scenario 100 that illustrates a prior art technique of utilizing proxy 130 to control interactions between HIP 110 and polygon 120 in a virtual environment. In scenario 100, HIP 110 starts as the position shown as HIP 110a in FIG. 1A, moves through position HIP 110b shown in FIG. 1B, and ends at position HIP 110c shown in FIG. 1C. In this technique, HIP 110 and proxy 130 are connected by a simulated spring not shown in the Figures.
In FIG. 1A, proxy 130, shown at position 130a, is in “free motion”; e.g., proxy 130a is not touching polygon 120. In FIG. 1B, proxy 130, shown at position 130b, is “in contact” with polygon 120. In scenario 100, while HIP 110 continues to move down from position 110b into polygon 120, proxy 130 is not permitted to enter into polygon 120. In FIG. 1C, proxy 130, shown at position 130c, is still in contact with a surface of polygon 120 after HIP 110 has moved to position 110c inside of polygon 120. As the distance increases between HIP 110 and proxy 130, the simulated spring exerts a proportionally larger force to draw HIP 110 closer to proxy 130. FIG. 1C shows the simulated spring force as force 140 exerted on HIP 110. As shown in FIG. 1C, force 140 is exerted in the direction of a normal of the surface in contact with the proxy 130; e.g., a hypotenuse 122 of polygon 120.
FIG. 2 shows an example coordinate system 200 specifying six degrees of freedom for tool 210. Coordinate system 200 can be used for other entities as well, such as HIP. A position of tool 210 can be specified as a point (x, y, z) in three-dimensional space specified using coordinate system 200. For example, the point can defined in terms of three axes, such as an X axis, a Y axis, and a Z axis. Then, the position of tool 210 can be specified as a (x, y, z) coordinate, with x, y, and z respectively specifying an X-axis coordinate, a Y-axis coordinate, and a Z-axis coordinate. If only position is taken into account, tool 210 can be said to have three positional degrees of freedom, as each of x, y, and z can be specified to position tool 210.
Tool 210 can be rotated about each of the X axis, Y axis, and Z axis, as shown in FIG. 2. If only rotations are taken into account, tool 210 can be said to have three rotational degrees of freedom, as rotations about each of x, y, and z can be specified to rotate (or orient) tool 210. Taking both positional and rotational degrees of freedom into account, tool 210 can have up to 6 degrees of freedom, as listed on FIG. 2. These six degrees of freedom include respective degrees of freedom for selecting an X coordinate, a Y coordinate, a Z coordinate, an X rotation, a Y rotation, and a Z rotation.
Techniques for six degree-of-freedom haptic rendering in virtual environments consisting of polygons and/or voxels (volume pixels) have been specified. These efforts are typically divided into direct rendering- and virtual coupling methods where the latter can further be subdivided into penalty-, impulse- and constraint-based methods. The simplest 6-DOF haptic rendering method is the direct method, where the virtual tool perfectly matches the configuration of the haptic rendering device. The force sent to user is directly based on the amount of penetration in the virtual environment. Unfortunately the direct method suffers from problems with “pop through”. Pop through is an artifact that arises when the rendering algorithm erroneously penetrates a thin surface.
In virtual coupling methods, a virtual coupling, or connection, between the haptic rendering device and the virtual tool is utilized. In this method, the force on the haptic rendering device is simply calculated as a spring between the virtual tool, referred to also as ‘god-object’, ‘proxy’ or and the configuration of the haptic rendering device. 6-DOF rendering methods using virtual couplings rely on rigid body simulations, since the virtual tool has to be simulated as a 6-DOF object, as compared to 3-DOF rendering where the rotational component can be ignored. In penalty-based methods, the configuration (position and rotation) of the virtual tool is calculated using penalty forces based on the tool's penetration depth into objects, similar to how penalty-costs are used in traditional optimization. These penalty forces are then integrated to produce the motion of the virtual tool. This method results in a virtual tool that actually penetrates objects in the environment. Fortunately this penetration is typically very small.
For impulse-based dynamics methods, a virtual object is moved by a series of impulses upon contact/collision (rather than forces based on penetration depth). In constraint-based methods, the virtual tool moves into contact with the environment but (ideally) never violates constraints imposed by the environment.
Other environments can be explored by robots, such as undersea, outer space, and hazardous environments. In some of these environments, robots can be controlled by human operators receiving video and/or audio information from the robot.